package com.gonsin.gview.annotations.board.form;

import com.gonsin.gview.annotations.data.GSimpleListData;
import com.gonsin.gview.annotations.enums.InputType;
import com.gonsin.gview.annotations.data.GListData;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * 文本输入框
 */
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface GTextInput {

    /**
     * 是否有效
     */
    boolean enable() default true;

    /**
     * 是否为必填
     */
    boolean required() default true;

    /**
     * 表单提交时对应的key值， inputType=RE_PASSWORD 时为空，其他为非空
     */
    String keyName() default "";

    /**
     * 文本框显示的名字
     */
    String name() default "";

    /**
     * 提示语
     */
    String placeholder() default "";

    /**
     * 输入类型
     */
    InputType inputType() default InputType.TEXT;

    /**
     * 正则表达式校验式
     */
    String regular() default "";

    /**
     * 正则表达式校验不通过时提示语
     */
    String regularMessage() default "";

    /**
     * 判断条件显示，支持js语法，例如   showIf="type==1"
     */
    String showIf() default "1";

    /**
     * 文本框支持模糊搜索时，下拉的数据源
     */
    GSimpleListData simpleListData() default @GSimpleListData(enable = false);

    /**
     * 判断条件禁用，支持js语法，例如   disableIf="{{form.type}} == 1"
     */
    String disableIf() default "0";

    /**
     * 单个表单项被修改时，触发具体的action事件
     */
    String onChangeAction() default "";

}
